<?php

/**
 * Yii view MyUtil
 *
 * @author luunguyen
 * @since Oct 2, 2012 - 10:30:44 AM
 */
class MyUtil
{

    static function word_limiter($str, $limit = 100, $end_char = '&#8230;')
    {
        if (trim($str) == '')
        {
            return $str;
        }

        preg_match('/^\s*+(?:\S++\s*+){1,' . (int) $limit . '}/', $str, $matches);

        if (strlen($str) == strlen($matches[0]))
        {
            $end_char = '';
        }

        return rtrim($matches[0]) . $end_char;
    }

    static function timeToString($time = 0)
    {
        if (!$time)
            return "";
        $time = time() - $time;
        $y    = intval($time / (3600 * 24 * 365));
        if ($y > 0)
            return "$y năm trước";

        $d = intval($time / (3600 * 24));
        if ($d > 0)
            return "$d ngày trước";

        $h = intval($time / 3600);
        if ($h > 0)
            return "$h giờ trước";

        $m = intval($time / 60);
        if ($m > 0)
            return "$m phút trước";

        return "$time giây trước";
    }

    public static function vn_url_title($chuTiengViet)
    {
        $trans = array(
            'à'   => 'a', 'á'   => 'a', 'ả'   => 'a', 'ã'   => 'a', 'ạ'   => 'a',
            'ă'   => 'a', 'ằ'   => 'a', 'ắ'   => 'a', 'ẳ'   => 'a', 'ẵ'   => 'a', 'ặ'   => 'a',
            'â'   => 'a', 'ầ'   => 'a', 'ấ'   => 'a', 'ẩ'   => 'a', 'ẫ'   => 'a', 'ậ'   => 'a',
            'À'   => 'a', 'Á'   => 'a', 'Ả'   => 'a', 'Ã'   => 'a', 'Ạ'   => 'a',
            'Ă'   => 'a', 'Ằ'   => 'a', 'Ắ'   => 'a', 'Ẳ'   => 'a', 'Ẵ'   => 'a', 'Ặ'   => 'a',
            'Â'   => 'a', 'Ầ'   => 'a', 'Ấ'   => 'a', 'Ẩ'   => 'a', 'Ẫ'   => 'a', 'Ậ'   => 'a',
            'đ'   => 'd', 'Đ'   => 'd',
            'è'   => 'e', 'é'   => 'e', 'ẻ'   => 'e', 'ẽ'   => 'e', 'ẹ'   => 'e',
            'ê'   => 'e', 'ề'   => 'e', 'ế'   => 'e', 'ể'   => 'e', 'ễ'   => 'e', 'ệ'   => 'e',
            'È'   => 'e', 'É'   => 'e', 'Ẻ'   => 'e', 'Ẽ'   => 'e', 'Ẹ'   => 'e',
            'Ê'   => 'e', 'Ề'   => 'e', 'Ế'   => 'e', 'Ể'   => 'e', 'Ễ'   => 'e', 'Ệ'   => 'e',
            'ì'   => 'i', 'í'   => 'i', 'ỉ'   => 'i', 'ĩ'   => 'i', 'ị'   => 'i',
            'Ì'   => 'i', 'Í'   => 'i', 'Ỉ'   => 'i', 'Ĩ'   => 'i', 'Ị'   => 'i',
            'ò'   => 'o', 'ó'   => 'o', 'ỏ'   => 'o', 'õ'   => 'o', 'ọ'   => 'o',
            'ô'   => 'o', 'ồ'   => 'o', 'ố'   => 'o', 'ổ'   => 'o', 'ỗ'   => 'o', 'ộ'   => 'o',
            'ơ'   => 'o', 'ờ'   => 'o', 'ớ'   => 'o', 'ở'   => 'o', 'ỡ'   => 'o', 'ợ'   => 'o',
            'Ò'   => 'o', 'Ó'   => 'o', 'Ỏ'   => 'o', 'Õ'   => 'o', 'Ọ'   => 'o',
            'Ô'   => 'o', 'Ồ'   => 'o', 'Ố'   => 'o', 'Ổ'   => 'o', 'Ỗ'   => 'o', 'Ộ'   => 'o',
            'Ơ'   => 'o', 'Ờ'   => 'o', 'Ớ'   => 'o', 'Ở'   => 'o', 'Ỡ'   => 'o', 'Ợ'   => 'o',
            'ù'   => 'u', 'ú'   => 'u', 'ủ'   => 'u', 'ũ'   => 'u', 'ụ'   => 'u',
            'ư'   => 'u', 'ừ'   => 'u', 'ứ'   => 'u', 'ử'   => 'u', 'ữ'   => 'u', 'ự'   => 'u',
            'Ù'   => 'u', 'Ú'   => 'u', 'Ủ'   => 'u', 'Ũ'   => 'u', 'Ụ'   => 'u',
            'Ư'   => 'u', 'Ừ'   => 'u', 'Ứ'   => 'u', 'Ử'   => 'u', 'Ữ'   => 'u', 'Ự'   => 'u',
            'ỳ'   => 'y', 'ý'   => 'y', 'ỷ'   => 'y', 'ỹ'   => 'y', 'ỵ'   => 'y',
            'Y'   => 'y', 'Ỳ'   => 'y', 'Ý'   => 'y', 'Ỷ'   => 'y', 'Ỹ'   => 'y', 'Ỵ'   => 'y',
            ' - ' => '-', ' '   => '-'
        );

        $str = strtolower(strtr($chuTiengViet, $trans));
        $str = preg_replace('/[^a-zA-Z0-9\s\-]/', '', $str);
        $str = ltrim($str, '-');
        $str = rtrim($str, '-');
        return $str;
    }

    public static function vn_url_filename($chuTiengViet)
    {
        $trans = array(
            'à'   => 'a', 'á'   => 'a', 'ả'   => 'a', 'ã'   => 'a', 'ạ'   => 'a',
            'ă'   => 'a', 'ằ'   => 'a', 'ắ'   => 'a', 'ẳ'   => 'a', 'ẵ'   => 'a', 'ặ'   => 'a',
            'â'   => 'a', 'ầ'   => 'a', 'ấ'   => 'a', 'ẩ'   => 'a', 'ẫ'   => 'a', 'ậ'   => 'a',
            'À'   => 'a', 'Á'   => 'a', 'Ả'   => 'a', 'Ã'   => 'a', 'Ạ'   => 'a',
            'Ă'   => 'a', 'Ằ'   => 'a', 'Ắ'   => 'a', 'Ẳ'   => 'a', 'Ẵ'   => 'a', 'Ặ'   => 'a',
            'Â'   => 'a', 'Ầ'   => 'a', 'Ấ'   => 'a', 'Ẩ'   => 'a', 'Ẫ'   => 'a', 'Ậ'   => 'a',
            'đ'   => 'd', 'Đ'   => 'd',
            'è'   => 'e', 'é'   => 'e', 'ẻ'   => 'e', 'ẽ'   => 'e', 'ẹ'   => 'e',
            'ê'   => 'e', 'ề'   => 'e', 'ế'   => 'e', 'ể'   => 'e', 'ễ'   => 'e', 'ệ'   => 'e',
            'È'   => 'e', 'É'   => 'e', 'Ẻ'   => 'e', 'Ẽ'   => 'e', 'Ẹ'   => 'e',
            'Ê'   => 'e', 'Ề'   => 'e', 'Ế'   => 'e', 'Ể'   => 'e', 'Ễ'   => 'e', 'Ệ'   => 'e',
            'ì'   => 'i', 'í'   => 'i', 'ỉ'   => 'i', 'ĩ'   => 'i', 'ị'   => 'i',
            'Ì'   => 'i', 'Í'   => 'i', 'Ỉ'   => 'i', 'Ĩ'   => 'i', 'Ị'   => 'i',
            'ò'   => 'o', 'ó'   => 'o', 'ỏ'   => 'o', 'õ'   => 'o', 'ọ'   => 'o',
            'ô'   => 'o', 'ồ'   => 'o', 'ố'   => 'o', 'ổ'   => 'o', 'ỗ'   => 'o', 'ộ'   => 'o',
            'ơ'   => 'o', 'ờ'   => 'o', 'ớ'   => 'o', 'ở'   => 'o', 'ỡ'   => 'o', 'ợ'   => 'o',
            'Ò'   => 'o', 'Ó'   => 'o', 'Ỏ'   => 'o', 'Õ'   => 'o', 'Ọ'   => 'o',
            'Ô'   => 'o', 'Ồ'   => 'o', 'Ố'   => 'o', 'Ổ'   => 'o', 'Ỗ'   => 'o', 'Ộ'   => 'o',
            'Ơ'   => 'o', 'Ờ'   => 'o', 'Ớ'   => 'o', 'Ở'   => 'o', 'Ỡ'   => 'o', 'Ợ'   => 'o',
            'ù'   => 'u', 'ú'   => 'u', 'ủ'   => 'u', 'ũ'   => 'u', 'ụ'   => 'u',
            'ư'   => 'u', 'ừ'   => 'u', 'ứ'   => 'u', 'ử'   => 'u', 'ữ'   => 'u', 'ự'   => 'u',
            'Ù'   => 'u', 'Ú'   => 'u', 'Ủ'   => 'u', 'Ũ'   => 'u', 'Ụ'   => 'u',
            'Ư'   => 'u', 'Ừ'   => 'u', 'Ứ'   => 'u', 'Ử'   => 'u', 'Ữ'   => 'u', 'Ự'   => 'u',
            'ỳ'   => 'y', 'ý'   => 'y', 'ỷ'   => 'y', 'ỹ'   => 'y', 'ỵ'   => 'y',
            'Y'   => 'y', 'Ỳ'   => 'y', 'Ý'   => 'y', 'Ỷ'   => 'y', 'Ỹ'   => 'y', 'Ỵ'   => 'y',
            ' - ' => '-', ' '   => '-'
        );

        $str = strtolower(strtr($chuTiengViet, $trans));
        $str = ltrim($str, '-');
        $str = rtrim($str, '-');
        return $str;
    }

    public static function getEmbedYoutubeUrl($url)
    {
        preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $url, $matches);
        $youtube_id = isset($matches[0]) ? $matches[0] : '#';
        return 'http://www.youtube.com/embed/' . $youtube_id;
    }

    public static function moneyFormat($money)
    {
        return number_format($money, 0, ",", ".") . " VNĐ";
    }

}
